/*
 * lr-wpan-associated-device.h
 *
 *  Created on: 18 févr. 2012
 *      Author: stephane
 */

#ifndef LR_WPAN_ASSOCIATED_DEVICE_H_
#define LR_WPAN_ASSOCIATED_DEVICE_H_
#include "ns3/lr-wpan-mac.h"
namespace ns3 {

typedef std::pair<Mac16Address,Mac64Address> associateDeviceAddress;
class LrWpanAssociatedDevice :public Object
{

public:
	static TypeId GetTypeId(void);

	LrWpanAssociatedDevice(void);

	~LrWpanAssociatedDevice(void);

    void addAssociateDevice(Mac16Address shortaddr,Mac64Address extaddr);
    bool searchAssociateDevice(Address add, LrWpanAddressMode addrMode);
    Address getAssociateDevice(Address add, LrWpanAddressMode addrMode);
    void removeAssociateDevice(Address add, LrWpanAddressMode addrMode);
    void setMac(Ptr<LrWpanMac> mac);
private:
    void DoDispose();
    std::list<associateDeviceAddress> m_associateDevice;
	std::list<associateDeviceAddress> m_disassociateDevice;
	Ptr<LrWpanMac> m_mac;
};



}
// namespace ns3




#endif /* LR_WPAN_ASSOCIATED_DEVICE_H_ */
